package com.yonyou.cyxdms.sysAuth.service.service;


import com.yonyou.cyxdms.sysAuth.service.dto.SystemParamDTO;
import com.yonyou.cyxdms.sysAuth.service.entity.SystemParamPO;
import com.yonyou.cyxdms.sysAuth.service.vo.rule.AdviceVO;
import com.yonyou.cyxdms.sysmanage.client.vo.advice.AdviceRuleVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface SystemParamService {

    /**
     * @author ：quankk
     * @date ：2019/7/9 15:49
     * @description：
     */
    Map<String, Object> getCommonData();

    List<SystemParamPO> querySystemParaList();

    void updateSystemPara(List<SystemParamDTO> systemParamDTO);

    String getRatioByownerCode(Long companyId);

    /**
     * 通知规则设定
     *
     * @param:
     * @return:
     * @auther: 李贺
     * @since: 2019/9/16
     */
    void setAdviceRules(List<AdviceVO> advicevos);

    /**
     * 通知规则查询
     *
     * @return:
     * @auther: 李贺
     * @since: 2019/9/16
     */
    List<AdviceVO> getAdviceRule(List<String> paramCodes);

    /**
     * 通知规则查询，根据paramCode
     *
     * @auther: 李贺
     * @since: 2019/9/18
     */
    List<AdviceRuleVO> getAdviceRules(String paramCode);

    /**
     * 根据code查询配置的value
     *
     * @param paramCode 配置code
     * @param appId     租户ID
     * @return
     * @auth houkh
     * @since 2019/11/26
     */
    String getParamValueByCode(String paramCode, String appId);

    //判断是否需要密码更新
    Integer needUpdate();

    //增加系统参数
    void insertInitParam(String companyId);
}
